﻿
NpcDialog = {}   --包含的是npcID对应的一些执行函数
NpcCommonFunc = {}

--#include "data\functions\NPCStorehouseFunc.lua" once	--包含仓库文件

--以下是包含npc的文件进来
--#include "NpcCommonFunc.lua" once			--共公的npc函数，执行npc函数时优先调用该文件中的函数
--#include "data\envir\FubenCountConfig.lua" once			--副本次数配置
--#include "data\envir\FuBen.txt" once					--没看懂
--#include "data\functions\FuBenNpcFunc\FubenCommonFunc.lua" once
--#include "data\functions\NormalFuncForQuest.lua" once

----------已用----------
--#include "NpcDialog\100ChuanSongYuan.lua" once			--传送员
--#include "NpcDialog\111RedNameJailNpc.lua" once			--红名监狱NPC
--#include "NpcDialog\35CangKu.lua" once					--仓库
--#include "NpcDialog\132MayaPalaceMain.lua" once           --玛雅神殿
--#include "NpcDialog\133StoneTombPigMain.lua" once         --石墓烧猪
--#include "NpcDialog\134BossHomeMain.lua" once         	--BOSS之家
--#include "NpcDialog\102TwelvePalaces.lua" once         	--十二星宫
--#include "NpcDialog\74WorshipMonarchMain.lua" once        --膜拜城主
--#include "NpcDialog\105NightFighting.lua" once         	--夜战皇城
--#include "NpcDialog\101TreasureMap.lua" once				--黑市宝图
--#include "NpcDialog\106SecretTreasure.lua" once         	--龙城秘宝
--#include "NpcDialog\141DreamLandBoss.lua" once         	--幻境boss
--#include "NpcDialog\142DreamLandBossExchange.lua" once    --幻境boss兑换
--#include "NpcDialog\144TianHuangMain.lua" once         	--天荒秘境NPC
--#include "NpcDialog\146SceneBossNpcMain.lua" once         --场景BOSS-NPC
--#include "NpcDialog\147MagicCity.lua" once         		--魔域迷城-NPC
--#include "NpcDialog\148MoZun.lua" once         			--魔尊战场-NPC
--#include "NpcDialog\149SpaceTrial.lua" once         		--血域试炼-NPC
--#include "NpcDialog\150BossBattleField.lua" once    		--BOSS战场-NPC
--#include "NpcDialog\201TempleWoMa.lua" once				--神殿沃玛

--#include "NpcDialog\151CrossServer.lua" once				--跨服-NPC

--#include "NpcDialog\153CrossRecycleItem.lua" once			--跨服道具回收
--#include "NpcDialog\198CrossExpScene.lua" once			--跨服经验场景
--#include "NpcDialog\154CrossUnionWar.lua" once			--跨服联盟战入口npc
--#include "NpcDialog\155CrossUnionWarExchange.lua" once	--跨服联盟战上交水晶npc
--#include "NpcDialog\156CrossUnionWarExchange.lua" once	--跨服联盟战上交水晶npc

--#include "NpcDialog\158VipScene.lua" once					--vip场景
--#include "NpcDialog\162GuildContendTax.lua" once			--税收npc
--#include "NpcDialog\163ArenaBossMain.lua" once			--擂台BOSS NPC

--#include "NpcDialog\169EscortDestNpc.lua" once			--押镖提交npc
--#include "NpcDialog\171PersonAnswer.lua" once				--个人答题
--#include "NpcDialog\172BloodFight.lua" once				--血战到底
--#include "NpcDialog\173KongFuMaster.lua" once				--练功师

--#include "NpcDialog\200BaoZang.lua" once				    --魔族大盗npc

--#include "NpcDialog\202SupplyContention.lua" once			--补给争夺入口npc
--#include "NpcDialog\203SupplyContentionExchange.lua" once	--补给争夺上交水晶npc
--#include "NpcDialog\204SupplyContentionExchange.lua" once	--补给争夺上交水晶npc
--#include "NpcDialog\206DarkBox.lua" once				    --暗之宝箱

--#include "NpcDialog\205ServerPK.lua" once				    --全服争霸
--#include "NpcDialog\207WorldBossMain.lua" once		    --世界BOSS
--#include "NpcDialog\208RechargeScene.lua" once		    --狂暴地图（充值地图）

function OnNpcEvent(sysarg, npcId, funcName, ... )
	if npcId > 0 then
		local comFunc = NpcCommonFunc[funcName]
		if comFunc then
			return comFunc(sysarg, unpack(arg))
		end
		local npcFunc = NpcDialog[npcId]
		if npcFunc then
			local func = npcFunc[funcName]
			if func then
				return func(sysarg, unpack(arg))
			end
		end
	else
		local globalFunc = _G[funcName]
		if globalFunc then
			return globalFunc(sysarg, unpack(arg))
		end
	end
end

function OnNpcTimer(npcId, funcName, ... )
	local npcFunc = NpcDialog[npcId]
	if npcFunc then
		local realFunc = npcFunc[funcName]
		if realFunc then
			realFunc(unpack(arg))
		end
	end
end

function InitNpcFunc()
	for npcId, funcTab in pairs(NpcDialog) do
		if funcTab.init then
			funcTab.init(npcId)
		end
	end
end

function NormalNpcFubenFunc(sysarg, npcId)
	local fubenStr = ""
	local fbs = NPCFubenTable[npcId]
	for k, fbid in ipairs(fbs or {}) do
		local fubenCfg = FuBen[fbid]
		local circleVal = fubenCfg and fubenCfg.circle
		if fubenCfg and Actor.checkActorLevel(sysarg, fubenCfg.minLevel, circleVal or 0) then
			fubenStr = string.format("%s<#BL%s/@OnEnterFubenFunc,%d>",fubenStr,fubenCfg.fbname,fbid)
		end
	end
	return fubenStr
end


InitNpcFunc()
